<?php


namespace app\functionality\admin;
use app\admin\controller\Admin;
use app\common\builder\ZBuilder;
use app\functionality\model\Fexcel; // 引入ZBuilder

class Excel extends Admin
{
    public function index(){
        // 查询
        $map = $this->getMap();
        // 排序
        $order = $this->getOrder('update_time desc');
        // 数据列表
        $data_list = Fexcel::where($map)->order($order)->paginate();

        // 使用ZBuilder快速创建数据表格
        return ZBuilder::make('table')
            ->setSearch(['title' => '标题']) // 设置搜索框
            ->addColumns([ // 批量添加数据列
                ['id', 'ID'],
                ['title', '标题', 'text.edit'],
                ['date', '日期'],
                ['file', '文件', 'files', '没有上传文件'],
                ['create_time', '创建时间', 'datetime'],
                ['update_time', '更新时间', 'datetime'],
                ['right_button', '操作', 'btn']
            ])
            ->addTopButtons('add,enable,disable,delete') // 批量添加顶部按钮
            ->addRightButtons(['edit', 'delete' => ['data-tips' => '删除后无法恢复。']]) // 批量添加右侧按钮
            ->addOrder('id,title,create_time,update_time')
            ->setRowList($data_list) // 设置表格数据
            ->addValidate('Link', 'title,url')
            ->fetch(); // 渲染模板
    }

    public function add()
    {
        // 保存数据
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            $date = explode('-',$data['date']);
            $data['year'] = $date[0];
            $data['month'] = $date[1];
            $data['day'] = $date[2];

            if ($link = Fexcel::create($data)) {
                $this->success('新增成功', 'index');
            } else {
                $this->error('新增失败');
            }
        }

        // 显示添加页面
        return ZBuilder::make('form')
            ->addFormItems([
                ['text', 'title', '标题'],
                ['file', 'file', '文件'],
                ['date', 'date', '日期'],
            ])
            ->fetch();
    }

    public function edit($id = null)
    {
        if ($id === null) $this->error('缺少参数');

        // 保存数据
        if ($this->request->isPost()) {
            // 表单数据
            $data = $this->request->post();
            $date = explode('-',$data['date']);
            $data['year'] = $date[0];
            $data['month'] = $date[1];
            $data['day'] = $date[2];

            if (Fexcel::update($data)) {
                // 记录行为
                $this->success('编辑成功', 'index');
            } else {
                $this->error('编辑失败');
            }
        }

        $info = Fexcel::get($id);

        // 显示编辑页面
        return ZBuilder::make('form')
            ->addFormItems([
                ['hidden', 'id'],
                ['text', 'title', '标题'],
                ['file', 'file', '文件'],
                ['date', 'date', '日期'],
            ])
            ->setFormData($info)
            ->fetch();
    }
}